<!DOCTYPE html [ <!ENTITY nbsp "&#160;"> ]>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:p="http://primefaces.org/ui" template="/template/template.xhtml">
	
	<title>RefAxion | Gestion de Talleres Mecanicos</title>

			<link type="image/x-icon" href="img/favicon.ico" rel="shortcut icon" />
			<link rel="shortcut icon" href="img/favicon.ico" />
			
			<f:metadata>
				<f:event type="preRenderView" listener="#{formOrdenDeTrabajoBean.iniciar}" />
			</f:metadata>  
		
	<ui:define name="body">
	    
		<h1>Formulario de Ingreso de Orden de Trabajo Nro. <h:outputText value="#{formOrdenDeTrabajoBean.idMaximoOTNuevo}" /></h1>

		<h:form id="formRegistroOt" enctype="multipart/form-data">
		
			<p:panel id="idPanelInfoClienteOT" header="Ingresar Rut de Dueño de Vehículo">
			
								
					<table>
						<tr>
							<td><h:outputLabel value="Rut (Ej.11222333-4) : " /></td>
							<td><p:inputText  id="rut" value="#{formOrdenDeTrabajoBean.clienteSeleccionadoOT.rut}" disabled="true" />
							
								<p:commandButton 
								id="idBuscarClienteButton" 
								process="@this" update=":mensajesGlobales, :idBuscarClienteDialog" 
								actionListener="#{formOrdenDeTrabajoBean.listarClientes}"
								value="Buscar Cliente"
								oncomplete="buscarClienteDialog.show()" />
							</td>
						</tr>
						<tr>
							<td><h:outputLabel value="Nombre : " /></td>
							<td><p:inputText id="nombre" 
							value="#{formOrdenDeTrabajoBean.clienteSeleccionadoOT.apellidoPaterno} #{formOrdenDeTrabajoBean.clienteSeleccionadoOT.apellidoMaterno} #{formOrdenDeTrabajoBean.clienteSeleccionadoOT.nombre}"
							style="width: 300px;white-space: normal"
							disabled="true" /></td>

						</tr>
						<tr>
							<td><h:outputLabel value="Direccion : " /></td>
							<td><p:inputText id="direccion" 
							value="#{formOrdenDeTrabajoBean.clienteSeleccionadoOT.direccion}"
							style="width: 300px;white-space: normal"
							disabled="true" /></td>
							
						</tr>
						<tr>
							<td><h:outputLabel value="Telefono : " /></td>
							<td><p:inputText id="telefono" 
							value="#{formOrdenDeTrabajoBean.clienteSeleccionadoOT.telefono}"
							style="width: 300px;white-space: normal"
							disabled="true" /></td>
							
						</tr>
						
						
					</table>	
			</p:panel>
			<p:spacer width="16" height="16" />
			<p:panel id="idPanelInfoVehiculoOT1" header="Vehículo para Ingresar a Taller" >
			
								
					<table>
						<tr>
							<td><h:outputLabel value="Nro Matricula  : " /></td>
							<td><p:inputText  id="matricula" value="#{formOrdenDeTrabajoBean.vehiculoSeleccionadoOT.matricula}" disabled="true" />
							
								<p:commandButton 
								id="idBuscarVehiculoButton" 
								process="@this" update=":mensajesGlobales, :idBuscarVehiculoDialog" 
								actionListener="#{formOrdenDeTrabajoBean.listarVehiculosPorCliente}"
								value="Buscar Vehículos Asociados"
								oncomplete="buscarVehiculoDialog.show()" />
							</td>
						</tr>
						<tr>
							<td><h:outputLabel value="Marca : " /></td>
							<td><p:inputText id="marca" 
							value="#{formOrdenDeTrabajoBean.vehiculoSeleccionadoOT.marcaDescripcion}"
							style="width: 300px;white-space: normal"
							disabled="true" /></td>

						</tr>
						<tr>
							<td><h:outputLabel value="Modelo : " /></td>
							<td><p:inputText id="modelo" 
							value="#{formOrdenDeTrabajoBean.vehiculoSeleccionadoOT.modeloDescripcion}"
							style="width: 300px;white-space: normal"
							disabled="true" /></td>
							
						</tr>
						<tr>
							<td><h:outputLabel value="Año : " /></td>
							<td><p:inputText id="anno" 
							value="#{formOrdenDeTrabajoBean.vehiculoSeleccionadoOT.anno}"
							style="width: 300px;white-space: normal"
							disabled="true" /></td>
							
						</tr>
						
					</table>	
			</p:panel>
			
			<p:spacer width="16" height="16" />
			<p:panel id="idPanelInfoOT" header="Ingresar Insumos de Orden de Trabajo">
					<table>
								<tr>
									<td><h:outputLabel value="Fecha Ingreso : " /></td>
									<td><p:calendar id="fechaIngreso"
										value="#{formOrdenDeTrabajoBean.ordenTrabajoNueva.fechaIngresoTrans}"
										disabled="#{formOrdenDeTrabajoBean.desabilitadoOrden}"
										locale="es" pattern="dd-MM-yyyy"
										readonlyInput="true" navigator="true">
										<!-- <f:validator validatorId="dateRangeValidator" /> -->
										<f:attribute name="fechaIngreso"
											value="#{formOrdenDeTrabajoBean.ordenTrabajoNueva.fechaIngresoTrans}" />
									</p:calendar> </td>
								</tr>
								<tr>	
									<td><h:outputLabel value="Fecha Entrega : " /></td>
									<td><p:calendar id="fechaEntrega"
										value="#{formOrdenDeTrabajoBean.ordenTrabajoNueva.fechaEntregaTrans}"
										disabled="#{formOrdenDeTrabajoBean.desabilitadoOrden}"
										locale="es" pattern="dd-MM-yyyy"
										readonlyInput="true" navigator="true">
										<!-- <f:validator validatorId="dateRangeValidator" /> -->
										<f:attribute name="fechaEntrega"
											value="#{formOrdenDeTrabajoBean.ordenTrabajoNueva.fechaEntrega}" />
									</p:calendar> </td>
								</tr>
								<tr>
									<td><h:outputLabel value="Tipo de Orden : " /></td>
								    <td><p:selectOneMenu id="tipoOrden"
										value="#{formOrdenDeTrabajoBean.ordenTrabajoNueva.idTipoServicio}"
										disabled="#{formOrdenDeTrabajoBean.desabilitadoOrden}">									
										<f:selectItem itemLabel="Seleccione" itemValue="" />  
	            						<f:selectItem itemLabel="Mantención" itemValue="1" />  
							            <f:selectItem itemLabel="Reparación" itemValue="2" />     
										</p:selectOneMenu>
									</td>
			
								</tr>
								<tr>
								<td><h:outputLabel value="Taller Asignado : " /></td>
								<td><p:selectOneMenu id="taller"
									value="#{formOrdenDeTrabajoBean.ordenTrabajoNueva.idTaller}"
									>
									<f:selectItem itemLabel="Seleccione" />
									<f:selectItems value="#{formUsuarioBean.listaTaller}"/>
								
									</p:selectOneMenu>
								</td>
			
						</tr>
								<!-- <tr>
									<td><h:outputLabel value="Observacion : " /></td>
									<td><p:inputTextarea cols="50" id="observacion" 
									value="#{formOrdenDeTrabajoBean.ordenTrabajoNueva.descripcion}" 
									required="true" disabled="#{formOrdenDeTrabajoBean.desabilitadoOrden}" />
									</td>
								</tr>	 -->
					</table>


	<!-- AGREGAR SERVICIOS ///////////////////////////////////////////////////////////////-->
				
				<p:spacer width="16" height="16" />
				<p:panel id="idPanelInfoSelServicios"  header="Seleccionar Servicios Asociados" style="border:0px;">

					<table>
							<tr>
								<td><h:outputLabel value="* Servicios  :       "/></td>
							</tr>
							<tr>	
								<td>
								<p:selectManyMenu id="idServicio" value="#{formOrdenDeTrabajoBean.listaServiciosSel}"
								 style="width: 400px;white-space: normal" >
										<f:selectItems value="#{formOrdenDeTrabajoBean.listadoServicios}" />
								</p:selectManyMenu>
								</td>
							</tr>
							
					</table>
					
					
									<p:commandButton id="idAgregarServicio" value="Agregar Servicios Seleccionados" 
									process="@this, idServicio" 
									update=":formRegistroOt:tablaServicios :formRegistroOt:idPanelInfoVehiculoOT1 :formRegistroOt:idPanelInfoTotales"
									actionListener="#{formOrdenDeTrabajoBean.agregarServicio}" 
									disabled="#{formOrdenDeTrabajoBean.desabilitadoOrden}" />
								 
									<p:commandButton id="idLimpiarDatosServicios" value="Limpiar Datos" 
									process="@this" update=":formRegistroOt:idPanelInfoVehiculoOT1"
									actionListener="#{formOrdenDeTrabajoBean.limpiarDatosServicio}"
									 disabled="#{formOrdenDeTrabajoBean.desabilitadoOrden}" />
					<br/>
					<p:spacer width="16" height="16" />

						<p:dataTable id="tablaServicios" var="ser" 
							value="#{formOrdenDeTrabajoBean.listaServiciosSelEnGrilla}"
							paginator="true" rows="10" paginatorPosition="bottom"
							emptyMessage="No se encontraron registros."
							sortBy="prueba" sortOrder="descending"
							>
							<p:column headerText="ID" sortBy="#{ser.idServicio}">
								<h:outputText value="#{ser.idServicio}" />					
							</p:column>
			
							<p:column headerText="Nombre Servicio" sortBy="#{ser.servicioDescripcion}">
								<h:outputText value="#{ser.servicioDescripcion}" />
							</p:column>
			
							<p:column headerText="Precio $" sortBy="#{ser.precioListaServicio}">
								<h:outputText value=" $ #{ser.precioListaServicio}" />
							</p:column>
							<p:column headerText="Acciones">									
									<p:commandLink id="idEliminarButton" rendered="true"
										
									    onclick="confirmEliminarServicio.show();"
									    actionListener="#{formOrdenDeTrabajoBean.listenerQuitarServicio(ser)}"
										process="@this">
										<p:graphicImage value="/img/icos_22_eliminar.png"
											title="Quitar Seleccion" />
									</p:commandLink>
							</p:column>								
							<p:summaryRow >
								            <p:column colspan="3" style="text-align:right">
								                Total:
								            </p:column>
								            <p:column>
								               $ #{formOrdenDeTrabajoBean.serviciosSumaTotalPrecio}
								            </p:column>
							</p:summaryRow>	
							
						</p:dataTable>
						
				</p:panel>	
				
	 <!-- AGREGAR REPUESTOS //////////////////////////////////////////////////////////////-->
					
				<p:spacer width="16" height="16" />
				<p:panel id="idPanelInfoSelRepuestos" header="Seleccionar Respuestos Asociados" style="border:0px;">
						<p:spacer width="12" height="16" />	
				<table>
						<tr>
							<td><h:outputLabel value="* Repuestos : "/></td>
						</tr>
						<tr>	
							<td>
							<p:selectManyMenu id="idRepuesto" value="#{formOrdenDeTrabajoBean.listaRepuestosSel}"
							 style="width: 400px;white-space: normal" >
									<f:selectItems value="#{formOrdenDeTrabajoBean.listadoRepuestos}" />
							</p:selectManyMenu>
							</td>
						</tr>
						
				</table>
				
				
								<p:commandButton id="idAgregarRepuesto" value="Agregar Repuestos Seleccionados" process="@this, idRepuesto" 
								update=":formRegistroOt:tablaRepuestos :formRegistroOt:idPanelInfoSelRepuestos :formRegistroOt:idPanelInfoTotales"
								actionListener="#{formOrdenDeTrabajoBean.agregarRepuesto}" 
								disabled="#{formOrdenDeTrabajoBean.desabilitadoOrden}" />
							 
								<p:commandButton id="idLimpiarDatosRepuestos" value="Limpiar Datos" 
								process="@this" update=":formRegistroOt:idPanelInfoSelRepuestos"
								actionListener="#{formOrdenDeTrabajoBean.limpiarDatosRepuesto}" 
								disabled="#{formOrdenDeTrabajoBean.desabilitadoOrden}" />
				<br/>
				<p:spacer width="16" height="16" />						
				<!-- <p:panel id="idPanelInfoRepuestos" header="Lista de Repuestos Seleccionados"> -->

							<p:dataTable id="tablaRepuestos" var="rep" 
								value="#{formOrdenDeTrabajoBean.listaRepuestosSelEnGrilla}"
								paginator="true" rows="10" paginatorPosition="bottom"
								emptyMessage="No se encontraron registros."
								sortBy="prueba" sortOrder="descending">
								<p:column headerText="ID" sortBy="#{rep.idRepuesto}">
									<h:outputText value="#{rep.idRepuesto}" />					
								</p:column>
				
								<p:column headerText="Nombre Repuesto" sortBy="#{rep.descripcion}">
									<h:outputText value="#{rep.descripcion}" />
								</p:column>
								
								<p:column headerText="Cantidad" sortBy="#{rep.cantidad}">
									<p:selectOneMenu id="cantidad"
											value="#{rep.cantidad}"
											disabled="#{formOrdenDeTrabajoBean.desabilitadoOrden}">	
											<f:selectItems value="#{formOrdenDeTrabajoBean.nroRepuestos}"/>
											<p:ajax event="change" update=":formRegistroOt:tablaRepuestos :formRegistroOt:idPanelInfoTotales" 
											 process="cantidad"
									   		 listener="#{formOrdenDeTrabajoBean.reCalcularPrecioPorItem(rep.idRepuesto)}" />	
									</p:selectOneMenu>
								</p:column>
				
								<p:column headerText="Precio Unit. $" sortBy="#{rep.precioRepuesto}">
									<h:outputText value="$ #{rep.precioRepuesto}" />
								</p:column>
								
								<p:column headerText="Precio $" sortBy="#{rep.precioRepuestoFinal}">
									<h:outputText value="$ #{rep.precioRepuestoFinal}" />
								</p:column>
								
								<p:column headerText="Acciones">									
									<p:commandLink id="idEliminarButton2" rendered="true"
										
									    onclick="confirmEliminarRepuesto.show();"
									    actionListener="#{formOrdenDeTrabajoBean.listenerQuitarRepuesto(rep)}"
										process="@this">
										<p:graphicImage value="/img/icos_22_eliminar.png"
											title="Quitar Seleccion" />
									</p:commandLink>
							    </p:column>								
								<p:summaryRow >
								            <p:column colspan="5" style="text-align:right">
								                Total:
								            </p:column>
								            <p:column>
								                $ #{formOrdenDeTrabajoBean.repuestosSumaTotalPrecio}
								            </p:column>
								</p:summaryRow>	  
							</p:dataTable>	 
						
				
			</p:panel>	
		</p:panel>	
		
	<!-- PAQUETES DE MANTENCION //////////////////////////////////////////////////////////////-->
		
		<p:spacer width="16" height="16" />
		<p:panel id="idPanelInfoPaquetes" header="Agregar paquete de Mantencion">
		
					<table>
						<tr>
							<td><h:outputLabel value="Codigo Paquete Mantención : " /></td>
							<td><p:inputText  id="codigoPaquete" 
							value="#{formOrdenDeTrabajoBean.paqueteAsignadoOT.idPaqueteMantencion}" 
							disabled="true" />
							
								<p:commandButton 
								id="idBuscarPaqueteButton" 
								process="@this" update=":mensajesGlobales, :idBuscarPaqueteDialog" 
								actionListener="#{formOrdenDeTrabajoBean.listarPaquetes}"
								value="Buscar Paquete Mantención"
								oncomplete="buscarPaqueteDialog.show()" />
							</td>
						</tr>
						<tr>
							<td><h:outputLabel value="Nombre Paquete Mantención : " /></td>
							<td><p:inputText id="nombrePaquete" 
							value="#{formOrdenDeTrabajoBean.paqueteAsignadoOT.nombrePaqueteMantencion}"
							style="width: 300px;white-space: normal"
							disabled="true" /></td>

						</tr>
						<tr>
							<td><h:outputLabel value="Precio Paquete Mantención ($) : " /></td>
							<td><p:inputText id="precioPaquete" 
							value="#{formOrdenDeTrabajoBean.paqueteAsignadoOT.precioTotal}"
							style="width: 300px;white-space: normal"
							disabled="true" /></td>
							
						</tr>
						<tr>
							<td></td>
							<td>
								<p:commandButton 
								id="quitarPaqueteSeleccionado" 
								process="@this" update=":mensajesGlobales, :formRegistroOt:idPanelInfoPaquetes :formRegistroOt:idPanelInfoTotales" 
								actionListener="#{formOrdenDeTrabajoBean.limpiarPaqueteSeleccionado}"
								value="Quitar Paquete de Mantención Seleccionado"
								 />
							</td>	 
						</tr>
												
					</table>
		</p:panel>
		
	 <!-- TOTALIZAR ORDEN DE TRABAJO //////////////////////////////////////////////////////////////-->			
				
				<p:spacer width="16" height="16" />						
				<p:panel id="idPanelInfoTotales" header="Presupuesto de Orden de Trabajo">
				<p:spacer width="16" height="16" />	
					<table>
						<tr>
							<td><h:outputLabel value="Precio Total de Servicios Prestados $ : " /></td>
							<td><p:inputText id="precioTotalOT" 
							value="#{formOrdenDeTrabajoBean.precioOTTotalCalculado}" 
							required="true"  disabled="true" /></td>
						</tr>
						<tr>
							<td><h:outputLabel value="Descuento $ : " /></td>
							<td><p:inputText id="descuento" 
							value="#{formOrdenDeTrabajoBean.descuentoAplicado}" 
							required="true" disabled="#{formOrdenDeTrabajoBean.desabilitadoOrden}" 
							 >
							 <p:ajax event="change" process="@this" 
							 update=":formRegistroOt:idPanelInfoTotales" 
							 listener="#{formOrdenDeTrabajoBean.aplicarDescuento}"/>					
							 </p:inputText></td>
						</tr>
						<tr>
							<td><h:outputLabel value="Precio Venta $ : " /></td>
							<td><p:inputText id="precioFinalOT" 
							value="#{formOrdenDeTrabajoBean.precioOTTotalFinal}" 
							required="true" disabled="true" /></td>
						</tr>
					</table>
				</p:panel>
				
				
				
			<p:commandButton value="Emitir Orden de Trabajo" 
			action="#{formOrdenDeTrabajoBean.guardarOT}" 
			styleClass="btnEnviar" process="@form" update="@form"/>
			
	 <!-- //////////////////////////////////////////////////////////////-->

		
		</h:form>
		
		
		<p:confirmDialog id="dialogConfirmEliminarServicio"
			message="¿Desea quitar el item seleccionado?"
			header="Confirmacion" widgetVar="confirmEliminarServicio"
			severity="alert">
			<h:form>
				<p:commandButton value="Si"
					actionListener="#{formOrdenDeTrabajoBean.confirmarQuitarServicioGrilla}"
					oncomplete="confirmEliminarServicio.hide();" 
					update="@form :formRegistroOt:idPanelInfoSelServicios  :formRegistroOt:idPanelInfoTotales"
					process="@this" immediate="true" />
				<p:commandButton value="No" type="button"
					onclick="confirmEliminarServicio.hide();" immediate="true" />
			</h:form>
		 </p:confirmDialog>
		 
		  <p:confirmDialog id="dialogConfirmEliminarRepuesto"
			message="¿Desea quitar el item seleccionado?"
			header="Confirmacion" widgetVar="confirmEliminarRepuesto"
			severity="alert">
			<h:form>
				<p:commandButton value="Si"
					actionListener="#{formOrdenDeTrabajoBean.confirmarQuitarRepuestoGrilla}"
					oncomplete="confirmEliminarRepuesto.hide();" 
					update="@form :formRegistroOt:idPanelInfoSelRepuestos :formRegistroOt:idPanelInfoTotales"
					process="@this" immediate="true" />
				<p:commandButton value="No" type="button"
					onclick="confirmEliminarRepuesto.hide();" immediate="true" />
			</h:form>
		 </p:confirmDialog>

		<!-- PopUps Include -->

		<ui:include src="/genericas/ordenDeTrabajo/popup/busquedaClienteOT.xhtml" />
		<ui:include src="/genericas/ordenDeTrabajo/popup/busquedaVehiculoOT.xhtml" />
		<ui:include src="/genericas/ordenDeTrabajo/popup/busquedaPaqueteOT.xhtml" />

	</ui:define>
</ui:composition>	